In active medical devices, as in many other electronic devices, it is necessary to input and store in memory a certain number of operating parameters which are necessary for the device to perform the desired functions.
Among these parameters, one first of all finds parameters of a technical nature, which are generally adjusted at the time of production of the device, or at the time of calibration of the device (e.g., voltage or current references, oscillation frequencies, amplifier gains, etc.). Indeed, the circuit design of the device often requires that the functioning of the hardware circuits be adjusted in order to obtain an optimal behavior. These adjustments can be carried out in various ways, for example, by an adjustment of the resistance by etching, sanding or laser engraving (trimming). More recently, the generalization of electronics with switchable capacitors (capacitors controlled by transistors switches) and digital processing has brought back the problem of adjustment with respect to obtaining a digital code word of N bits which, once obtained, is used via digital-to-analog converters to control the logical switches of a capacitor network, or as a variable in a software routine. Such a technique is, for example, described in the EP-A-0 661 657 and its corresponding U.S. Pat. No. 5,697,960 issued to the assignee hereof, ELA Medical SA.
The value of other technical parameters can be adjusted later on during use. In the particular case of an implantable active medical prosthesis device, certain parameter values can be adjusted by the practitioner after implantation, for example, to adapt the prosthesis to the patient from a physiological point of view. These adjustable parameter values will condition the behavior of the various software control algorithms for the medical device, for example, for the delivery of stimulation pulses or defibrillation shocks in the case of a cardiac prosthesis.
These various parameters have as common characteristics permanent parameters (i.e., these parameters that are adjusted once and for all) or quasi-permanent parameters, and programmable parameters to be defined in the form of digital codes of N bits (N being a number of bits which can vary according to the parameter considered).
These digital codes are thus stored in permanent or nonvolatile memories, which can be ROM with fuses, EPROM, E2PROM, flash memory or battery-backed RAM. Each one of these types of memories has its own advantages and disadvantages, and especially a greater or lesser ability to store the information in a durable or non volatile manner. The RAM, which has the greatest facility of writing data, presents also a greater risk of loss or corruption of information on rare events, such as, for example, the impact of heavy ions such as the alpha particles or the electric parasites likely to be produced, for example, following an exposure to a high intensity electromagnetic pulse.
The ROM, EPROM, E2PROM or flash type of memories are by nature well protected from these risks of deterioration, but they present, for an active medical device, two disadvantages. On the one hand, from the point of view of the topology of the circuits, these memories are not physically located near the circuits where the adjustable parameter value stored in memory is used, and, in addition, are typically organized in a global way on a memory board, which prohibits a direct and permanent access to the stored information, whereas the circuit performing the analog function needs access to this stored information all the time. In the second place, reading data from these memories consumes energy, which is a critical parameter for implantable prostheses, and more generally, for portable battery-powered devices. This constraint prevents a permanent access to the information stored in these memories for calibration of the analog function stored in these memories, for obvious reasons of consumption of energy.
These difficulties can be overcome by storing the information in question (i.e., the parametric values) in registers of the RAM memory or flip-flop logic device type, located inside the circuit module which performs the functions and uses the parameter values. This provides the information stored in circuits topologically near to the place of the function which they calibrate, which circuits are permanently readable with very low current consumption.
These registers, however, are by nature volatile storage registers, and it is necessary to take account of the risk of accidental obliteration or deterioration of the data. This in turn brings about two problems. One is monitoring the information stored in the registers in order to control the integrity of the data, with a negligible power consumption and in an immediate or quasi-immediate manner. Another is correcting, also in an immediate or quasi-immediate manner, the corrupted data in the event of an accidental deterioration.
Various systems have been proposed based on a redundant and/or self-correcting coding of information, for example, of the CRC or analog type. But this technique presents the disadvantages of requiring an examination or analysis of quasi-permanent information, thus implying a large energy consumption, and in addition the appearance of an unspecified state of information during the lapse of time separating the detection of the error from its correction. The latter disadvantage is not acceptable in the case of active medical devices such as pacemakers, in which the continuity of correct functioning must be ensured in all circumstances.